package cn.jtfadmin.base.lang.common.domain.dto;

import cn.jtfadmin.base.lang.common.utils.TreeUtils;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

/**
 * 树型结构DTO, 其主要的构造工具 TreeUtils<br/>
 * 主要用途在于前端构建树型表格或树型选择时使用
 *
 * @author akfh
 * @version 0.0.1
 * @see TreeUtils
 * @since 0.0.1
 */
@Getter
@Setter
public class TreeRDTO<T> implements Serializable {


    /**
     * 数据
     */
    private T data;

    /**
     * 子数据
     */
    private List<TreeRDTO<T>> children;


    /**
     * 无参构造函数
     */
    public TreeRDTO() {
    }

    /**
     * 构造函数
     *
     * @param data 数据
     */
    public TreeRDTO(T data) {
        this.data = data;
    }

    /**
     * 构造函数
     *
     * @param data     数据
     * @param children 下级数据
     */
    public TreeRDTO(T data, List<TreeRDTO<T>> children) {
        this.data = data;
        this.children = children;
    }


}
